namespace DataAccessLayer
{
    public abstract class WeaponFactoryBase
    {
        public abstract NormalWeapon ConstructNormalWeapon(int requireSlots, int bulletCount, int shootInterval);

        public abstract RapidFireWeapon ConstructRapidFireWeapon(int requireSlots, int bulletCount, int shootInterval);

        public abstract IntenseFireWeapon ConstructIntenseFireWeapon(int requireSlots, int bulletCount, int shootInterval);

        public abstract FullAutomaticWeapon ConstructFullAutomaticWeapon(int requireSlots, int bulletCount, int shootInterval);

        public abstract SemiAutomaticWeapon ConstructSemiAutomaticWeapon(int requireSlots, int bulletCount, int shootInterval);
    }
}